package com.quectel.core.module.parkingcard.dto;

import com.quectel.core.module.car.dto.CarDto;
import com.quectel.core.module.carparking.dto.CarParkingSpaceDto;
import com.quectel.core.module.village.dto.VillageDto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author ryan
 * @email ryan.ran@quectel.com
 * @date 2023/04/18 17:23
 */
@Data
@Schema
public class ParkingCardMemberDto implements Serializable {

    /**
     * id
     */
    @Schema(description = "id")
    private Long id;

    /**
     * 租户id
     */
    @Schema(description = "租户id")
    private Long tenantId;

    /**
     * 所属小区id
     */
    @Schema(description = "所属小区id")
    private Long villageId;

    /**
     * 分配车位id
     */
    @Schema(description = "分配车位id")
    private Long carParkingSpaceId;

    /**
     * 车辆id
     */
    @Schema(description = "车辆id")
    private Long carId;

    /**
     * 车主手机号
     */
    @Schema(description = "车主手机号")
    private String mobile;

    /**
     * 车牌号
     */
    @Schema(description = "车牌号")
    private String license;

    /**
     * 车牌颜色
     */
    @Schema(description = "车牌颜色")
    private Byte licenseColor;

    /**
     * 是否冻结 1是 0否
     */
    @Schema(description = "是否冻结 1是 0否")
    private Byte isFreeze;

    /**
     * 累计节省金额
     */
    @Schema(description = "累计节省金额")
    private BigDecimal cumulativeSavings;

    /**
     * 截止日
     */
    @Schema(description = "截止日")
    private Date deadline;

    /**
     * 加入时间
     */
    @Schema(description = "加入时间")
    private Date joinTime;

    /************非数据库字段 start ************/
    /**
     * 小区信息
     */
    private VillageDto village;
    /**
     * 分配车位信息
     */
    private CarParkingSpaceDto carParkingSpace;
    /**
     * 车辆信息
     */
    private CarDto car;
    /**
     * 是否有效 1有效 0失效
     */
    private boolean isValid;
    /**
     * 设备下发状态信息
     */
    private String parkingCardMemberDeviceStatus;
    /**
     * 设备下发详细信息
     */
    private List<ParkingCardMemberDeviceDto> parkingCardMemberDeviceDetail;

    /************非数据库字段 end **************/
}
